package com.zbkj.service.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.zbkj.common.model.SpecialTopicCategory;
import com.zbkj.common.model.product.ProductCategory;
import com.zbkj.common.request.PageParamRequest;
import com.zbkj.common.request.ProductCategoryRequest;
import com.zbkj.common.vo.MyRecord;
import com.zbkj.common.vo.ProCategoryCacheVo;

import java.util.List;
import java.util.Map;

/**
 * @author keNan
 * @description SpecialTopicCategoryService 接口
 * @date 2025-05-29
 */
public interface SpecialTopicCategoryService extends IService<SpecialTopicCategory> {

    /**
     * 获取分类列表
     */
    List<SpecialTopicCategory> getAdminList();

    /**
     * 添加商品分类
     *
     * @param request 添加参数
     * @return Boolean
     */
    Boolean add(ProductCategoryRequest request);

    /**
     * 删除分类
     *
     * @param id 分类ID
     * @return Boolean
     */
    Boolean delete(Integer id);

    /**
     * 修改分类
     *
     * @param request 修改参数
     * @return Boolean
     */
    Boolean edit(ProductCategoryRequest request);

    /**
     * 修改分类显示状态
     *
     * @param id 分类ID
     * @return Boolean
     */
    Boolean updateShowStatus(Integer id);

    /**
     * 获取分类缓存树(平台端)
     *
     * @return List<ProCategoryCacheVo>
     */
    List<ProCategoryCacheVo> getCacheTree();

    /**
     * 根据菜单id获取所有下级对象
     *
     * @param pid   菜单id
     * @param level 分类级别
     * @return List<ProductCategory>
     */
    List<SpecialTopicCategory> findAllChildListByPid(Integer pid, Integer level);

    /**
     * 获取一级专题分类列表
     *
     * @return
     */
    List<SpecialTopicCategory> getFirstSpecialTopicCategory();

    List<ProCategoryCacheVo> getSpecialTopicCacheTree();
}